

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<script type="text/javascript" src="helpman_topicinit.js"></script>

<title>Custom Templates [Enterprise Architect User Guide]</title>

<meta name="keywords" content="Enterprise Architect, Sparx Systems, UML, Code Template,Code Template Editor,Code Template Custom Templates, Create,Code Template Import,Code Template Export,Import,Import Code Templates,Export,Export Code Templates">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<link type="text/css" href="default.css" rel="stylesheet" />
<style type="text/css">
  A, A:Visited
  {
    color: #00F;
  }

  A:Active, A:Hover
  {
    color: #F00;
  }

  OL
  {
    margin: 5px 0 5px 48px;
  }

  UL
  {
    margin-bottom: 3px;
    margin-top: 0;
  }

  #nsr
  {
    background-color: #D4DFFF;
  }

  #nsr A
  {
    text-decoration: none;
  }

  #mainbody
  {
    padding: 8px;
  }

  .p_BodyText
  {
    padding: 5px 0;
  }
</style>



<style type="text/css" media="screen">
  BODY
  {
    background-color: #FFFFFF;
  }

  #nsr
  {
    padding: 6px 6px 0 6px;
    border-bottom: none;
    vertical-align: top;
    z-index: 2;
    visibility: visible;
    left: 0;
    top: 0;
    position: absolute;
  }

  #mainbody
  {
    left: 0;
    top: 0;
    margin: 0;
    position: absolute;
    padding: 10px;
    overflow: auto;
    height: 100%;
    z-index: 1;
    background-repeat: no-repeat;
    background-position: bottom right;
    background-attachment: fixed;
  }
</style>

<style type="text/css" media="print">
  #nsr
  {
    visibility: none;
  }

  #mainbody
  {
    overflow: visible;
  }
</style>
<script type="text/javascript" language="JavaScript" src="nonscroll.js"></script>

</head>
<body scroll="no">

<div id="page">



        <div id="content">
          <div id="content-inner">
          



  
          <div id="nsr">
            <table border="0" cellspacing="0" cellpadding="4" width="100%">
              <tr valign="top">
                <td align="left">
  


                  <p class="p_Heading1"><span class="f_Heading1">Custom Templates</span></p>



  
                </td>
                <td align="right">
                  <a href="introduction.htm" onmouseover="document.images.main.src='button_main_h.gif'" onmouseout="document.images.main.src='button_main.gif'">
                    <img name="main" src="button_main.gif" border=0 alt="Return to Introduction">
                  </a>&nbsp;
    
                  <a href="thecodetemplateeditor_2.htm" onmouseover="document.images.prev.src='button_prev_h.gif'" onmouseout="document.images.prev.src='button_prev.gif'">
                    <img name=prev src="button_prev.gif" border=0 alt="Previous page" />
                  </a>&nbsp;
    
    
    
                  <a href="overridingdefaulttemplates.htm" onmouseover="document.images.next.src='button_next_h.gif'" onmouseout="document.images.next.src='button_next.gif'">
                    <img name=next src="button_next.gif" border=0 alt="Next page" />
                  </a>
    
    
                </td>
              </tr>
            </table>
          </div>
          <div id="mainbody">
  


                <p class="p_BodyText"><span class="f_BodyText">Custom templates enable you to generate an element in many different ways. Enterprise Architect enables you to define custom templates that are associated with given elements and call these templates from existing templates. You can even add stereotype overrides to your custom templates. For example, you might list all of your parameters and their notes in your method notes.</span></p>
<p class="p_BodyText"><span class="f_BodyText">To create a new custom template, follow the steps below:</span></p>
<ol style="text-indent: 0px; margin-left: 48px; list-style-position: outside;">
<li value=1><span class="f_NumberedList">Select the </span><span class="f_MenuKeyField">Settings | Code Generation Templates</span><span class="f_NumberedList"> menu option, or press </span><span class="f_MenuKeyField">[Ctrl]+[Shift]+[P]</span><span class="f_NumberedList">. The</span><span class="f_UIControl"> Code Templates Editor</span><span class="f_NumberedList"> tab opens.</span></li>
<li value=2><span class="f_NumberedList">In the </span><span class="f_MenuKeyField">Language</span><span class="f_NumberedList"> field, click on the drop-down arrow and select the appropriate language.</span></li>
<li value=3><span class="f_NumberedList">Click on the </span><span class="f_MenuKeyField">Add New Custom Template</span><span class="f_NumberedList"> button. The </span><span class="f_UIControl">Create New Custom Template</span><span class="f_NumberedList"> dialog displays.</span><br>
<span class="f_NumberedList">&nbsp;</span><br>
<img src="createnewcustomtemplate.png" width="274" height="113" border="0" alt="CreateNewCustomTemplate"><br>
<span class="f_NumberedList">&nbsp;</span></li>
<li value=4><span class="f_NumberedList">In the </span><span class="f_MenuKeyField">Template Type</span><span class="f_NumberedList"> field, click on the drop-down arrow and select the appropriate element. The elements currently supported are:</span></li>
</ol>
<ul style="text-indent: 0px; margin-left: 65px; list-style-position: outside;">
<li><span class="f_Bulletlist3">Attribute</span></li>
<li><span class="f_Bulletlist3">Class</span></li>
<li><span class="f_Bulletlist3">Class Base</span></li>
<li><span class="f_Bulletlist3">Class Interface</span></li>
<li><span class="f_Bulletlist3">Class Parameter</span></li>
<li><span class="f_Bulletlist3">Connector</span></li>
<li><span class="f_Bulletlist3">Import</span></li>
<li><span class="f_Bulletlist3">Linked Attribute</span></li>
<li><span class="f_Bulletlist3">Linked Class Base</span></li>
<li><span class="f_Bulletlist3">Linked Class Interface</span></li>
<li><span class="f_Bulletlist3">Namespace</span></li>
<li><span class="f_Bulletlist3">Operation</span></li>
<li><span class="f_Bulletlist3">Parameter.</span></li>
</ul>
<div style="text-align: left; text-indent: -21px; padding: 0px 0px 0px 0px; margin: 5px 0px 0px 48px;"><table cellspacing="0" cellpadding="2" border="0" style="border: none; border-spacing:0px;">
<tr style="text-align:left;vertical-align:bottom;">
<td valign="bottom" width="952" bgcolor="#efeff7" style="width:952px; background-color:#efeff7;"><p class="p_TiporNote" style="border-top: none; border-right: none; border-left: none;"><span class="f_TiporNote">Note:</span></p>
</td>
</tr>
<tr style="text-align:left;">
<td width="952" bgcolor="#f7f7ff" style="width:952px; background-color:#f7f7ff;"><p class="p_TiporNoteText"><span class="f_MenuKeyField">&lt;None&gt;</span><span class="f_TiporNoteText"> requires special treatment. It enables the definition of a function macro that doesn't actually apply to any of the types, but must be called as a function to define variables </span><span class="f_TiporNoteText" style="font-style: italic;">$parameter1</span><span class="f_TiporNoteText">, </span><span class="f_TiporNoteText" style="font-style: italic;">$parameter2</span><span class="f_TiporNoteText"> and so on for each value passed in.</span></p>
</td>
</tr>
</table>
</div>
<ol style="text-indent: 0px; margin-left: 48px; list-style-position: outside;">
<li value=5><span class="f_NumberedList">In the </span><span class="f_MenuKeyField">Template Name</span><span class="f_NumberedList"> field, type an appropriate name, then click on the</span><span class="f_MenuKeyField"> OK</span><span class="f_NumberedList"> button.</span></li>
<li value=6><span class="f_NumberedList">On the </span><span class="f_UIControl">Code Templates Editor</span><span class="f_NumberedList"> tab, the new template displays in the </span><span class="f_UIControl">Templates</span><span class="f_NumberedList"> list with the value </span><span class="f_MenuKeyField">Yes</span><span class="f_NumberedList"> in the </span><span class="f_MenuKeyField">Modified</span><span class="f_NumberedList"> field. The template is called &lt;Template Type&gt;__&lt;Template Name&gt;.</span></li>
<li value=7><span class="f_NumberedList">Select the appropriate template from the</span><span class="f_UIControl"> Templates</span><span class="f_NumberedList"> list and edit the contents in the </span><span class="f_MenuKeyField">Template</span><span class="f_NumberedList"> field to meet your requirements.</span><br>
<span class="f_NumberedList">&nbsp;</span><br>
<img src="codetemplateeditor2.png" width="878" height="575" border="0" alt="CodeTemplateEditor2"><br>
<span class="f_NumberedList">&nbsp;</span></li>
<li value=8><span class="f_NumberedList">Click on the </span><span class="f_MenuKeyField">Save</span><span class="f_NumberedList"> button. This stores the new stereotyped template in the .EAP file. The template is now available from the list of templates and via direct substitution for use.</span></li>
</ol>




            </div>
          </div>
        </div>



</div>


</body>
</html>
